package ar.uba.fi.tecnicas.vista;

import java.awt.*;
import java.util.Collection;

import javax.swing.*;

import ar.uba.fi.tecnicas.fabrica.Terreno;
import ar.uba.fi.tecnicas.fabrica.Terreno.ModoAdquisicion;
import ar.uba.fi.tecnicas.juego.Juego;

public class PanelAdquirirTerreno extends PanelOperacion 
{
	protected static final long serialVersionUID = 0;
	
	private JComboBox cbTerrenos;
	private JComboBox cbModoAdquisicion;

	public PanelAdquirirTerreno(PanelControles panelControles)
	{
		super(panelControles);
	}

	protected void inicializarComponentes() 
	{
		cbTerrenos = new JComboBox();
		cbModoAdquisicion = new JComboBox();
		
		Collection<Terreno> terrenos = Juego.instancia.getTerrenos();		
		
		for(Terreno terreno : terrenos)
		{
			String descTerreno = terreno.getAncho() + "x" + terreno.getAlto();
			descTerreno += " - Compra: " + terreno.getPrecio(ModoAdquisicion.Compra);
			descTerreno += " - Alquiler: " + terreno.getPrecio(ModoAdquisicion.Alquiler);

			cbTerrenos.addItem(descTerreno);
		}
		
		cbModoAdquisicion.addItem("Compra");
		cbModoAdquisicion.addItem("Alquiler");
		
		this.setLayout(new GridLayout(4, 1));
		
		this.componentes.add(cbTerrenos);
		this.componentes.add(cbModoAdquisicion);
	}
	
	protected void asignarEventos() {}
	
	protected void realizarOperacion()
	{
		int indexTerreno = this.cbTerrenos.getSelectedIndex();
		Collection<Terreno> terrenos = Juego.instancia.getTerrenos();
		Terreno terreno = terrenos.toArray(new Terreno[0])[indexTerreno];
		
		int indexModo = this.cbModoAdquisicion.getSelectedIndex();
		ModoAdquisicion modo = indexModo == 0 ? ModoAdquisicion.Compra : ModoAdquisicion.Alquiler; 
		
		panelControles.getFrameJuego().adquirirTerreno(terreno, modo);
	}
	
	protected void terminarOperacion() {}
}
